This present invention relates generally to semiconductor microcontrollers, and more particularly to an improved security technique for preventing read/write of an EPROM embedded on a processor.
Microprocessors have evolved into complex instruments and machines which require sophisticated, fast real-time control capability. Instead of using large microprocessors of 16 or 32 bit capability along with interrupt handler chips, programmable timer chips, ROM and RAM chips, the field has gone to a single chip microcontroller in which all peripherals are embedded on the same chip. Operation of the chip in an expanded mode allows gaining the versatility of all on-chip features. Microcontrollers are used in a wide diversity of present-day applications, with new applications found almost daily. In hand-held instruments such as tiny pocket-sized pagers, the microcontroller is responsive to received characters to interpret them, produce a beep to notify the user of an incoming message (or not if the user prefers an inaudible mode), and produces multiple message among the several last of those received on a suitable display, typically an LCD. The microcontroller can also recall from its internal memory any or all of the messages received in a given period of time. The chip is also used in other instrumentation such as meters and testers, capable of carrying out thousands of tests, each in a millisecond or less.
Other applications include keyboard controllers for personal computers, in which the microcontroller serves to offload many tasks formerly handled by the processor. The chip continuously performs a series of diagnostic procedures, and notifies the processor if it detects a problem. Among other personal computer applications, microcontrollers are used in modems for command interpretation and data transmission, in printer buffers for high speed dumping of data in preparation for driving the printer at the considerably lower speed at which the printer operates or for color plotters, in color copiers, electronic typewriters, cable television terminal equipment, lawn sprinkling controllers, credit card phone equipment, automotive applications such as engine control modules, antilock braking systems, automobile suspension control for desired desination of ride softness or rigidity depending on user preference, and a host of other applications used daily by industrial and consumer customers.
A real time microcontroller is a microcomputer adapted to provide rapid solutions to signal processing algorithms and other numerically intensive computations, and, as well, to control real time events such as opening and closing of relays, controlling the position and speed of a motor, and others such as mentioned above. The central processing unit (CPU) of the microcontroller operates in conjunction with certain peripherals for purposes of such control. The peripherals may include devices such as timers, signal ports, and baud rate generators, among others.
Many security schemes have been devised in the prior art to protect microprocessors, microcontrollers and other systems or devices employing memory from reading the secure area. In general, such schemes prevent reading by scrambling or securing with a key or keys. Such schemes have the drawback that alteration of the memory remains possible, and, unless readout is entirely prevented, reading before and after such alteration can be used to deduce the contents.
Typically, reading is not completely prevented because the user program usually requires the capability to read data stored in the secure area. This loophole can then be used to access the secure contents by carefully chosen instruction execution sequences. A complicating factor is that most users desire the ability to read/alter their secure contents by execution of instructions from within the secure area itself, but to prohibit such access by any other means. This, too, is a dichotomy that creates "chinks in the armor" of the security.